import jdk.internal.org.objectweb.asm.tree.MultiANewArrayInsnNode;

import java.util.Arrays;
import java.util.Locale;

public class test {

    public static void func2(int[] array ){

        if(array==null){

            throw   new NullPointerException("空指针异常");
        }
    }


    public static void main(String[] args) {

        func2(null);


//        System.out.println(10/0);

        int[] array=null;
//        System.out.println(array[0]);

    }

    public boolean isPalindrome(){
        String  s="A man, a plan,a canal: Panama";

        s=s.toLowerCase();//字符串转小写
        int left=0;
        int right=s.length()-1;

        while(left<right&& !isCharacterNum(s.charAt(left))){

            left++;

        }
        while (left<right&&!isCharacterNum(s.charAt(right))){

            right--;
        }
            //left指向合法
        //right指向合法
        //判断这两个下标字符一样不一样
        if(s.charAt(left)==s.charAt(right)){
            left++;
            right--;
        }else{
            return false;
        }

        return true;
    }
    private  boolean isCharacterNum(char ch){
        if(Character.isDigit(ch)||Character.isLetter(ch)){

            return true ;
        }
        return false;


    }
    public static void main9(String[] args) {
        /*例
        如果在将所有大写字符转换为小写字符，并移除所用非字母数字字符之后，短语正着读和反着读都一样，则可以认为该段语是一个回文窜
        字母和数字都属于字母数字字符。


        给一个字符串s如果他是回文串返回true 否则返回false
        s="A man, a plan,a canal: Panama"
        * */

         test test=new test();

        System.out.println(test.isPalindrome());


    }

    public static void main8(String[] args) {

        String str="hello nowcoder";//吧空格后的字符串打印

        //找放空格下标
        int index=str.lastIndexOf(" ");
        System.out.println(index);
        //字符串截取
        String ret=str.substring(index+1);
        System.out.println(ret);

//        String[] chars=str.split(" ");
//
//        Arrays.toString(chars);
////        System.out.println(chars);



    }
    public static void main7(String[] args) {


        String str="hello";
        char[] chars=new char[26];
        for (int i=0;i<str.length();i++) {
            char num=str.charAt(i);

            chars[(num-97)]++;
        }
        for (int i=0;i<str.length();i++){
            char num =str.charAt(i);
            if (chars[(num-97)]==1){

                System.out.println(i);
                return;
            }
        }


        System.out.println("没有第一次出现的下标");


        StringBuilder stringBuilder=new StringBuilder("hello");

    }
    public static void main6(String[] args) {
        //使用常量构造
        String s1="hello";
        System.out.println(s1);
        //直接nesString对象
        String s2=new String("hello");
        System.out.println(s2);
        //使用字符串数组进行构造
        char[] array={'h','e','l','l','o'};

        String s3=new String(array);
        System.out.println(s3);

    }


    public static void main5(String[] args) {
        char [] ch=new char[]{'h','e','l','l','o'};
        String str1=new String(ch);
        str1.intern();



        String str2="hello";

        System.out.println(str1==str2);

    }
    public static void main4(String[] args) {


        String str1=new String("ddd");
        String str2=new String(str1);
        str2.intern();
        String str3="ddd";
        String str4="ddd";
        System.out.println(str1.equals(str2));
        System.out.println(str1==str2);
        System.out.println(str1==str3);
        System.out.println(str3==str4);

    }
    public static void main3(String[] args) {
        String s1="hello";
        char [] chars=s1.toCharArray();
        for (char x:chars) {
            System.out.println(x);
        }
        System.out.println(s1);
    }
    public static void main2(String[] args) {

        String str="hello";
        for (int i=0;i<str.length();i++){
            char ch=str.charAt(i);//charAt获取各个位置的字符
            System.out.println(ch);

        }

        System.out.println("===============");

        int index=str.indexOf('l');//查找第一次出现的字符位置
        System.out.println(index);



    }
    public static void main1(String[] args) {

        String str1=new String("dddd");

        String str2="ddd";
        String str3="qqq";

        System.out.println(str1.compareTo(str2));
    }
}
